//package com.lx.jobFlowDemo;
//
//import org.springframework.batch.core.Job;
//import org.springframework.batch.core.Step;
//import org.springframework.batch.core.StepContribution;
//import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
//import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
//import org.springframework.batch.core.scope.context.ChunkContext;
//import org.springframework.batch.core.step.tasklet.Tasklet;
//import org.springframework.batch.repeat.RepeatStatus;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
///**
// * （1）flow是一个Step的集合，他规定了Step与Step之间的转换关系;
// * （2）创建Flow可以达到复用的效果，让其在不同的Job之间进行复用;
// * （3）使用FlowBuilder去创建一个Flow,他和Job类似，使用start(),next()以及end()来运行flow;
// * @author lixing
// * @date 2021/7/11 21:39
// */
//@Configuration
//public class JobFlowConfiguration1 {
//
//    @Autowired
//    private JobBuilderFactory jobBuilderFactory;
//
//    @Autowired
//    private StepBuilderFactory stepBuilderFactory;
//
//    /*@Bean
//    public Job JobFlowJob1(){
//        return jobBuilderFactory.get("JobFlowJob1")
//                .start(step1())
//                .next(step2())
//                .next(step3())
//                .build();
//    }*/
//
//    @Bean
//    public Job JobFlowJob1(){
//        return jobBuilderFactory.get("JobFlowJob1")
//                .start(step1())
//                .on("COMPLETED").to(step2())//提供一个状态 step1完成到什么状态  .fail() 失败后面的step不再执行 .stopAndRestart()
//                .from(step2()).on("COMPLETED").to(step3())
//                .from(step3()).end()
//                .build();
//    }
//
//    @Bean
//    public Step step1() {
//        return stepBuilderFactory.get("setp1")
//                .tasklet(new Tasklet() {
//                    @Override
//                    public RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception {
//                        System.out.println("Hello SpringBoot——Batch  setp1");
//                        return RepeatStatus.FINISHED;
//                    }
//                }).build();
//    }
//
//    @Bean
//    public Step step2() {
//        return stepBuilderFactory.get("setp2")
//                .tasklet(new Tasklet() {
//                    @Override
//                    public RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception {
//                        System.out.println("Hello SpringBoot——Batch  setp2");
//                        return RepeatStatus.FINISHED;
//                    }
//                }).build();
//    }
//
//    @Bean
//    public Step step3() {
//        return stepBuilderFactory.get("setp3")
//                .tasklet(new Tasklet() {
//                    @Override
//                    public RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception {
//                        System.out.println("Hello SpringBoot——Batch  setp3");
//                        return RepeatStatus.FINISHED;
//                    }
//                }).build();
//    }
//
//
//}
